iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 3
1
Software Development

後端基礎PHP+Mysql & Laravel 30日養成計畫系列 第 3

Day 3 三層式網頁架構與 LAMP 架構安裝示範(上)

  • 分享至 

  • xImage
  •  

今天要介紹的是在網頁系統架構中的三個階層與其中的幾個重要角色。

網頁系統架構(Web System Architecture)的三個階層

三個階層分別為:

  • Presentation Layer(表示層) → Client(瀏覽器、App),指任何發送請求到 server 端並接收回應的裝置/應用程式。

  • Application Layer(應用層) → App Server(處理程式邏輯、商業邏輯)

    • App server:應用程式伺服器,負責處理動態邏輯與商業流程,是整個後端系統的核心。當 Web Server 將請求轉交過來後,App Server 會執行相應的程式碼,例如驗證使用者、處理表單、向資料庫查詢或寫入資料,並生成動態內容回傳給 Web Server。常見的 App Server 包括 PHP-FPM、Node.js、Tomcat、Django 等,它們讓網站能根據使用者請求產生個別回應,而不僅是提供靜態檔案。
    • Web server:也位於三層架構的應用層中,負責在表示層(Client 端)與應用程式(App Server)之間進行溝通,接收瀏覽器發出的 HTTP 請求,並將對應的靜態或動態內容返回給使用者。

當使用者在瀏覽器中輸入網址並發送請求時,請求會先抵達 Web Server(如 Nginx、Apache)。
Web Server 會根據設定判斷:

若是靜態資源(HTML、圖片、CSS…),直接讀取檔案並回傳給使用者。

若是動態請求,則交由應用程式層(例如 PHP、Node.js、Python)處理邏輯與資料庫互動,產生內容後再回傳給使用者。

在現代架構中,Web Server 與 App Server 的界線有時會合而為一,例如在簡單的 LAMP 架構中,Web server apache 同時就扮演了 App server 的角色,它可以直接回傳靜態內容(HTML、圖片等),也可以透過模組(例如 Apache 的 mod_php)或代理(如轉發至 PHP-FPM、Node.js 等)來處理動態內容。

常見的 Web server 有 apache、nginx 等等,下面會以 apache 為例示範如何安裝。

  • Data Layer(資料層) → Database(資料儲存與查詢),是三層式網頁架構(Three-tier architecture)中最底層的一層,主要負責 資料的儲存、查詢、更新與維護。它是整個系統中「保存真實世界資訊」的地方,也是應用層邏輯運作的基礎。
    常見的資料層技術有關聯式資料庫如 MySQL、PostgreSQL ...,或 NoSQL 資料庫如 MongoDB、Redis 等等。

第一步:安裝 Apache

範例作業系統版本:Ubuntu 18.04

打開 terminal,輸入以下指令:

$sudo apt update
$sudo apt install apache2

安裝好後,打開瀏覽器,在網址列打上:
(server_ip 若沒特別設定過基本上都是127.0.0.1)

http://your_server_ip

看到這個畫面就表示安裝成功~

或者也可以輸入這個指令來查看apache的狀態

sudo systemctl status apache2

若 apache 未啟動,可以輸入以下指令啟動

sudo systemctl start apache2

或許看到這有人會好奇,為什麼是 apache2? 那 apache1 呢?

apache1.x 是在1990年代開發的,許多技術都已過時,而相較之下 apache2 則擁有 mult-ithreading、優化過的記憶體管理等,可以更有效的處理大量請求。apache1 也已經不再被維護,因此也隱含一些安全性問題,且在他之後推出的 nginx、caddy 等都是效能及易用性更高更受歡迎的選擇,apache1 已逐漸被市場淘汰,所以2002推出了 apache2,解決了第一代既有問題,且現在都還持續被維護,是個穩定、安全且被廣泛使用的 web server。

第二步:安裝 MySQL

安裝 MySQL server

$sudo apt install mysql-server

安裝過程系統會詢問你是否要繼續,輸入y就行了
安裝好後,輸入以下指令,啟動互動式shell script:

$sudo mysql_secure_installation

接著系統會詢問你是否要安裝 VALIDATE PASSWORD PLUGIN
VALIDATE PASSWORD PLUGIN 是 MySQL 的一個 plugin,用於驗證使用者設定的密碼強度,進而提高安全性。

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:

輸入y的話便會看到以下文字,可依據你的需求設定密碼強度:

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

若輸入了上面的驗證規範(validation policy),設定 MySQL 密碼時就必須遵從你所設定的強度規範,否則 MySQL 會拒絕你的密碼並出現錯誤。

Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

接下來系統問你的每個問題只要按y和enter就可以了。
他會刪除一些匿名用戶和測試的資料庫,並禁止root遠端登錄,然後載入剛才你所設定的驗證規範,以便讓 MySQL 立即遵從你的設定。

安裝好後,打開terminal,輸入 mysql -uroot -p
然後輸入你的MySQL密碼,看到這個畫面就表示安裝成功:


上一篇
Day 2 認識 Linux:準備 Linux 環境與基礎指令
下一篇
Day 4 LAMP 架構安裝示範(下)
系列文
後端基礎PHP+Mysql & Laravel 30日養成計畫35
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言